iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 14
0
自我挑戰組

Micropython x ESP H/W 之三十個錦囊妙計系列 第 14

[錦囊XIV] 要如何得到目前的時間? (以台灣時區為例)

  • 分享至 

  • xImage
  •  

讓筆者帶大家快速了解MicroPython 如何得到正確的台灣時間
[匯入time function]

 import time 

看起來time function 可以被正常匯入

[讓我們看看datetime 是否可以被使用]

>>> import datetime
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: no module named 'datetime'

/images/emoticon/emoticon04.gif
遇到fail, 看來datetime 模組並沒有被移植過來

[實做] 該如何得到正確的台灣時間

Micropython中沒有datetime function, 所以只能使用unix timestamp的方式來換算. 但unix timestamp是以GMT 格林威治時間為單位, 跟台灣的時區不同, 在得到累計時間後還需要 加上八小時 才是台灣時區的時間

作法:

  1. 抓取Unix timestamp
    [秘訣]
    (1) 通常電腦的累計秒數時間都是由1970/1/1 GMT格式的時間開始累積而來
    (2) MicroPython 內設定的累計時間的初始值則是2000/1/1 GMT格式

  2. 簡單寫個function 來抓取目前的電腦累計時間並轉換成GMT+8的台灣時間

def current_time():
    ctime = time.localtime(time.mktime(time.localtime()) + 28800)
    return "[{0}/{1}/{2} {3}:{4}:{5}]".format(ctime[0], ctime[1], ctime[2], ctime[3], ctime[4], ctime[5])

[秘訣] 28800 = 60秒 x 60秒 x 8 小時

  1. 每次呼叫 current_time function就會看到類似下面的時間回報字串
[2018/8/15 2:49:48] 

上一篇
[錦囊XIII] Are you crazy? (ESP rom 耐久度試驗)
下一篇
[錦囊XV] NTP (網路校時) 服務時好時壞怎麼辦?
系列文
Micropython x ESP H/W 之三十個錦囊妙計31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言